실제 예제

NOTE

실무 셸 스크립트 예제 — 백업, 로그 파일 정리, 마운트 사용률 점검.

💻 예시

백업하기

#!/bin/bash
 
if [ -z $1 ] || [ -z $2 ]   # || (or) : 두 가지 하나라도 없으면
then
    echo usage : $0 sourcedir targetidir
 
else
 
    SRCDIR=$1
 
    DSTDIR=$2
 
    BACKUPFILE=backup.$(date +%y%m%d%H%M%S).tar.gz
 
    if [ -d $DSTDIR ]
    then
 
        tar -cvzf $DSTDIR/$BACKUPFILE $SRCDIR
 
    else
 
        mkdir $DSTDIR
 
        tar -cvzf $DSTDIR/$BACKUPFILE $SRCDIR
 
    fi
 
fi

로그 파일 정리

#!/bin/bash
 
LOGDIR=/var/log
 
GZIPDAY=1
 
DELDAY=2
 
cd $LOGDIR
 
echo "cd $LOGDIR"
 
sudo find . -type f -name '*log.?' -mtime +$GZIPDAY -exec bash -c "gzip {}" \; 2>
 
sudo find . -type f -name '*.gz' -mtime +$DELDAY -exec bash -c "rm -f {}" \; 2>

명령어 실행 예제 (마운트 사용률)

mount_used=$(`df -h`)
cnt=0   # 숫자는 그냥 들어감
 
for mount_used_item in ${mount_used[*]}
do
    if [[ "$mount_used_item" =~ [1-9][0-9][%] ]]; then   # 10% 이상 df -h 검열
        cnt3=$cnt
        cnt2=`expr $cnt + 1`
        echo "사용률:${mount_used[$cnt3]}, 디렉토리: ${mount_used[$cnt2]}"
    fi
    cnt=`expr $cnt + 1`
done